var moment = require('moment');
var _ = require('underscore');

module.exports = function (app) {
  console.log('haha,mj')
  // 1、查询受影响用户
  // GET:http://localhost:8080/mobile/user/{userID}/app/{appId}/custom/affected_users.json
  // （替换原 android_user_data.json）
  app.get('/mobile/user/:userId/app/:appId/custom/affected_users.json', function (req, res) {
    res.status(200).json(
      [
        {
          "id": 1,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          //"uploadDataId": '48555bef-dfa9-42b5-bc47-86825806b666',
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x01",
          "timestamp": 1462946736000
        },
        {
          "id": 2,
          "appVersion": "2.1.5",
          "appVersionId": 28,
          //"uploadDataId": '42264bef-dfa9-42b5-bc47-86825806b567',
          "deviceId": 555,
          "manufacturerId": 2,
          "manufacturer": "Xiaomi",
          "userIdentifier": "userName0x02",
          "timestamp": 1463568083805
        }
      ]
    );
  });

  // 2、查询ajax受影响用户 -> Deprecated
  // GET:http://localhost:8080/mobile/user/{userID}/app/{appId}/custom/ajax_affected_users.json
  // （替换原 android_user_data.json）
  //app.get('/mobile/user/:userId/app/:appId/custom/ajax_affected_users.json', function (req, res) {
  //  res.status(200).json(
  //    {
  //      "message": "success",
  //      "status": 0,
  //      "data": [
  //        {
  //          "id": 1,
  //          "appVersion": "2.0.6",
  //          "appVersionId": 22,
  //          //"uploadDataId": '48555bef-dfa9-42b5-bc47-86825806b666',
  //          "deviceId": 461,
  //          "totalNum": 12,
  //          "manufacturerId": 1,
  //          "manufacturer": "Meizu",
  //          "userIdentifier": "userName0x01",
  //          "timestamp": 1462946736000
  //        },
  //        {
  //          "id": 2,
  //          "appVersion": "2.1.5",
  //          "appVersionId": 28,
  //          //"uploadDataId": '42264bef-dfa9-42b5-bc47-86825806b567',
  //          "deviceId": 555,
  //          "totalNum": 31,
  //          "manufacturerId": 2,
  //          "manufacturer": "Xiaomi",
  //          "userIdentifier": "userName0x02",
  //          "timestamp": 1463568083805
  //        }
  //      ]
  //    }
  //  );
  //});

  // 2、查找匹配用户
  // GET:http://localhost:8080/mobile/user/{userID}/app/{appId}/custom/search_users.json
  // (替换原 similarUser.json)
  app.get('/mobile/user/:userId/app/:appId/custom/search_users.json', function (req, res) {
    res.status(200).json(
      [
        "userName0x01",
        "userName0x02"
      ]
    );
  });

  // 3、查询用户信息列表
  // GET:http://localhost:8080/mobile/user/{userID}/app/{appId}/custom/userinfos.json
  // (替换原 android_user_data.json)
  app.get('/mobile/user/:userId/app/:appId/custom/userinfos.json', function (req, res) {
    res.status(200).json(
      [
        {
          // "id": 1,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x01",
          "timestamp": 1462946736000
        },
        {
          // "id": 2,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x02",
          "timestamp": 1462946736000
        },
        {
          // "id": 3,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x03",
          "timestamp": 1462946736000
        },
        {
          // "id": 4,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x04",
          "timestamp": 1462946736000
        },
        {
          // "id": 5,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x05",
          "timestamp": 1462946736000
        },
        {
          // "id": 6,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x06",
          "timestamp": 1462946736000
        },
        {
          // "id": 7,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x07",
          "timestamp": 1462946736000
        },
        {
          // "id": 8,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x08",
          "timestamp": 1462946736000
        },
        {
          // "id": 9,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x09",
          "timestamp": 1462946736000
        },
        {
          // "id": 10,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x0a",
          "timestamp": 1462946736000
        },
        {
          // "id": 11,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x0b",
          "timestamp": 1462946736000
        },
        {
          // "id": 12,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x0c",
          "timestamp": 1462946736000
        },
        {
          // "id": 13,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x0d",
          "timestamp": 1462946736000
        },
        {
          // "id": 14,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x0e",
          "timestamp": 1462946736000
        },
        {
          // "id": 15,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x0f",
          "timestamp": 1462946736000
        },
        {
          // "id": 16,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x10",
          "timestamp": 1462946736000
        },
        {
          // "id": 17,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x11",
          "timestamp": 1462946736000
        },
        {
          // "id": 18,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x12",
          "timestamp": 1462946736000
        },
        {
          // "id": 19,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x13",
          "timestamp": 1462946736000
        },
        {
          // "id": 20,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x14",
          "timestamp": 1462946736000
        },
        {
          // "id": 21,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x15",
          "timestamp": 1462946736000
        },
        {
          // "id": 22,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x16",
          "timestamp": 1462946736000
        },
        {
          // "id": 23,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x17",
          "timestamp": 1462946736000
        },
        {
          // "id": 24,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x18",
          "timestamp": 1462946736000
        },
        {
          // "id": 25,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x19",
          "timestamp": 1462946736000
        },
        {
          // "id": 26,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x1a",
          "timestamp": 1462946736000
        },
        {
          // "id": 27,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x1b",
          "timestamp": 1462946736000
        },
        {
          // "id": 28,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x1c",
          "timestamp": 1462946736000
        },
        {
          // "id": 29,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x1d",
          "timestamp": 1462946736000
        },
        {
          // "id": 30,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x1e",
          "timestamp": 1462946736000
        },
        {
          // "id": 31,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x1f",
          "timestamp": 1462946736000
        },
        {
          // "id": 32,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x20",
          "timestamp": 1462946736000
        },
        {
          // "id": 33,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x21",
          "timestamp": 1462946736000
        },
        {
          // "id": 34,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x22",
          "timestamp": 1462946736000
        },
        {
          // "id": 35,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x23",
          "timestamp": 1462946736000
        },
        {
          // "id": 36,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "deviceId": 461,
          "manufacturerId": 1,
          "manufacturer": "Meizu",
          "userIdentifier": "userName0x24",
          "timestamp": 1462946736000
        },
        {
          // "id": 37,
          "appVersion": "2.1.5",
          "appVersionId": 28,
          "deviceId": 555,
          "manufacturerId": 2,
          "manufacturer": "Xiaomi",
          "userIdentifier": "userName0x25",
          "timestamp": 1463568083805
        }
      ]
    );
  });

  // 4、查询用户概要数据
  // GET：http://localhost:8080/mobile/user/{userID}/app/{appId}/custom/user_summary.json
  // (替换原 android_crash_extra_data.json)
  app.get('/mobile/user/:userId/app/:appId/custom/user_summary.json', function (req, res) {
    res.status(200).json(
      {
        "message": "success",
        "status": 0,
        "data": {
          "appUsedCount": 82,
          "appVersionName": "2.0.6",
          "area": "中国 北京",
          "errorCount": 82,
          "deviceTypeName": "phone",
          "extraDatas": '{"cpu_sys":"107472755","location":"?? ???","customData":{"??1":"??","??ID1":"12@@###@","????1":"1@@@@@#?##@?   #"},"rooted":"0","cpu_app":"378","power":"95","carrier":"v2_460_3_6","memAvail":"31956992","imsi":"460010190505098","resolution":"800x1280","ui_orientation":"portrait"}',
          "lastAppUseTime": 1463480269,
          "manufacturerName": "Meizu",
          "modelName": "Meizu MX4 Pro",
          "osName": "Android",
          "osVersionName": "5.0.1"
        }
      }
    );
  });

  // 5、查询crash统计结果
  // GET：http://localhost:8080/mobile/user/{userID}/app/{appId}/custom/crash.json
  // (替换原android_crash_improved_data.json)
  app.get('/mobile/user/:userId/app/:appId/custom/crash.json', function (req, res) {
    res.status(200).json(
      [
        {
          "crashNameId": 101,
          "affected": 1,
          "appVersion": "2.0.6",
          "appVersionId": 22,
          "count": 50,
          //"uploadDataId": '48664bef-dfa9-42b5-bc47-86825806b06f',
          "crashCodeIndex": "Line 386",
          "crashCodeInfo": "android.view.WindowManagerGlobal",
          "crashName": "java.lang.IllegalArgumentException|WindowManagerGlobal.java#android.view.WindowManagerGlobal#findViewLocked#386",
          "crashType": "java.lang.IllegalArgumentException|WindowManagerGlobal.java",
          "firstTime": 1463480261000,
          "fixed": false,
          "fixedTimestamp": 0,
          "follow": false,
          "id": 17,
          "ignores": false,
          "lastTime": 1464320521000
        }
      ]
    );
  });

  // 6、查询jsError统计结果
  // GET：http://localhost:8080/mobile/user/{userId}/app/{appId}/custom/js.json
  app.get('/mobile/user/:userId/app/:appId/custom/js.json', function (req, res) {
    res.status(200).json(
      [
        {
          "appId": 0,
          "deviceNum": 3,
          "errCount": 10,
          "errMsg": "ReferenceError: Can't find variable: $",
          "firstTime": 1463648807612,
          "id": 0,
          "jsUrl": "http://10.128.7.247:3500/errorpage1",
          "lastTime": 1463648808612
        },
        {
          "appId": 1,
          "deviceNum": 5,
          "errCount": 123,
          "errMsg": "ReferenceError: Can't find variable: _",
          "firstTime": 1463648807612,
          "id": 1,
          "jsUrl": "http://10.128.7.247:3500/errorpage2",
          "lastTime": 1463648808612
        }
      ]
    );
  });

  // 7、查询ajax统计结果
  // GET：http://localhost:8080/mobile/user/{userID}/app/{appId}/custom/ajax.json
  app.get('/mobile/user/:userId/app/:appId/custom/ajax.json', function (req, res) {
    res.status(200).json(
      [
        {
          "affected": 20,
          "avg": 0,
          "count": 10,
          "domain": "www.domain.com",
          "domainId": 1,
          "firstTime": 1463737688136,
          "lastTime": 1463737688136,
          "url": "/url.js",
          "urlId": 1,
          "val": 0
        },
        {
          "affected": 34,
          "avg": 3,
          "count": 23,
          "domain": "www.domain2.com",
          "domainId": 2,
          "firstTime": 1463737688136,
          "lastTime": 1463737688136,
          "url": "/url2.js",
          "urlId": 2,
          "val": 2
        }
      ]
    );
  });


  app.get('/mobile/menu/tree.json', function (req, res) {
    res.status(200).json(
      [{"available":6,"children":[{"available":7,"children":[{"available":0,"children":[],"classinfo":"","displayName":"总览","expiredDays":0,"icon":"","id":10,"level":2,"menuName":"overview","moduleId":11,"parentId":3,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"总览","expiredDays":0,"icon":"","id":11,"level":2,"menuName":"overview1","moduleId":12,"parentId":3,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"用户信息","expiredDays":0,"icon":"","id":12,"level":2,"menuName":"imsisearch","moduleId":15,"parentId":3,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"崩溃","expiredDays":0,"icon":"","id":13,"level":2,"menuName":"crashlog","moduleId":14,"parentId":3,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"ANR","expiredDays":0,"icon":"","id":14,"level":2,"menuName":"anr","moduleId":16,"parentId":3,"platform":"Android","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"卡顿","expiredDays":0,"icon":"","id":15,"level":2,"menuName":"framerate","moduleId":19,"parentId":3,"platform":"Android","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"交互","expiredDays":0,"icon":"","id":16,"level":2,"menuName":"interaction","moduleId":13,"parentId":3,"platform":"","status":1,"style":""}],"classinfo":"iconfont icon icon-cube","displayName":"应用","expiredDays":0,"icon":"icon-cube","id":3,"level":1,"menuName":"application","moduleId":3,"parentId":1,"platform":"","status":1,"style":""},{"available":4,"children":[{"available":0,"children":[],"classinfo":"","displayName":"拓扑","expiredDays":0,"icon":"","id":17,"level":2,"menuName":"map","moduleId":20,"parentId":4,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"请求","expiredDays":0,"icon":"","id":18,"level":2,"menuName":"http","moduleId":21,"parentId":4,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"错误","expiredDays":0,"icon":"","id":19,"level":2,"menuName":"error","moduleId":22,"parentId":4,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"Socket","expiredDays":0,"icon":"","id":20,"level":2,"menuName":"socket","moduleId":23,"parentId":4,"platform":"Android","status":1,"style":""}],"classinfo":"iconfont icon icon-signal","displayName":"网络","expiredDays":0,"icon":"icon-signal","id":4,"level":1,"menuName":"network","moduleId":6,"parentId":1,"platform":"","status":1,"style":""},{"available":2,"children":[{"available":0,"children":[],"classinfo":"","displayName":"页面加载","expiredDays":0,"icon":"","id":21,"level":2,"menuName":"pageload","moduleId":17,"parentId":5,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"Ajax 请求","expiredDays":0,"icon":"","id":22,"level":2,"menuName":"ajax","moduleId":18,"parentId":5,"platform":"","status":1,"style":""}],"classinfo":"iconfont icon","displayName":"WebView","expiredDays":0,"icon":"&#xe6a7;","id":5,"level":1,"menuName":"webview","moduleId":4,"parentId":1,"platform":"","status":1,"style":"margin-top:2px;"},{"available":2,"children":[{"available":0,"children":[],"classinfo":"","displayName":"组合分析","expiredDays":0,"icon":"","id":23,"level":2,"menuName":"combineanalysis","moduleId":30,"parentId":6,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"关键元素","expiredDays":0,"icon":"","id":24,"level":2,"menuName":"element-analyse","moduleId":34,"parentId":6,"platform":"","status":1,"style":""}],"classinfo":"iconfont icon","displayName":"分析","expiredDays":0,"icon":"&#xe657;","id":6,"level":1,"menuName":"analysis","moduleId":8,"parentId":1,"platform":"","status":1,"style":""},{"available":6,"children":[{"available":0,"children":[],"classinfo":"","displayName":"地域","expiredDays":0,"icon":"","id":25,"level":2,"menuName":"geo","moduleId":24,"parentId":7,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"运营商","expiredDays":0,"icon":"","id":26,"level":2,"menuName":"carries","moduleId":25,"parentId":7,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"应用版本","expiredDays":0,"icon":"","id":27,"level":2,"menuName":"appversion","moduleId":26,"parentId":7,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"操作系统","expiredDays":0,"icon":"","id":28,"level":2,"menuName":"os","moduleId":27,"parentId":7,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"设备","expiredDays":0,"icon":"","id":29,"level":2,"menuName":"device","moduleId":28,"parentId":7,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"日活","expiredDays":0,"icon":"","id":30,"level":2,"menuName":"dayactive","moduleId":29,"parentId":7,"platform":"","status":1,"style":""}],"classinfo":"iconfont icon icon-rocket","displayName":"运维","expiredDays":0,"icon":"icon-rocket","id":7,"level":1,"menuName":"maintain","moduleId":7,"parentId":1,"platform":"","status":1,"style":""},{"available":3,"children":[{"available":0,"children":[],"classinfo":"","displayName":"应用设置","expiredDays":0,"icon":"","id":31,"level":2,"menuName":"setting","moduleId":31,"parentId":8,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"元素设置","expiredDays":0,"icon":"","id":32,"level":2,"menuName":"elements","moduleId":35,"parentId":8,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"警报设置","expiredDays":0,"icon":"","id":33,"level":2,"menuName":"alert","moduleId":36,"parentId":8,"platform":"","status":1,"style":""}],"classinfo":"iconfont icon icon-cogs","displayName":"设置","expiredDays":0,"icon":"icon-cogs","id":8,"level":1,"menuName":"set","moduleId":9,"parentId":1,"platform":"","status":1,"style":""}],"classinfo":"item left active","displayName":"性能","expiredDays":0,"icon":"","id":1,"level":0,"menuName":"performance","moduleId":1,"parentId":0,"platform":"","status":1,"style":""},{"available":1,"children":[{"available":2,"children":[{"available":0,"children":[],"classinfo":"","displayName":"新增用户","expiredDays":30,"icon":"","id":34,"level":2,"menuName":"useraddition","moduleId":32,"parentId":9,"platform":"","status":1,"style":""},{"available":0,"children":[],"classinfo":"","displayName":"活跃分析","expiredDays":30,"icon":"","id":35,"level":2,"menuName":"activeanalysis","moduleId":33,"parentId":9,"platform":"","status":1,"style":""}],"classinfo":"iconfont icon","displayName":"用户分析","expiredDays":30,"icon":"&#xe601;","id":9,"level":1,"menuName":"useranalysis","moduleId":10,"parentId":2,"platform":"","status":1,"style":""}],"classinfo":"item right","displayName":"运营","expiredDays":30,"icon":"","id":2,"level":0,"menuName":"useraddition","moduleId":2,"parentId":0,"platform":"","status":1,"style":""}]
    );
  });

  // https://mi.oneapm.com/mobile/app/800/crashlog#/crashtrace/256904
  // crashlog 模块中，crashtrace 页面所需要的接口
  app.get('/mobile/user/:userId/app/:appId/android_crash_series_data.json', function (req, res) {
    res.status(200).json(
      {"result":[{"combData":{"affected":3,"appUseCount":0,"count":14,"crashRate":0,"et":1465718400000,"firstTime":1464686744000,"lastTime":1465283651000,"st":1464418800000},"data":[{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1464451200000,"firstTime":0,"lastTime":0,"st":1464418800000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1464537600000,"firstTime":0,"lastTime":0,"st":1464451200000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1464624000000,"firstTime":0,"lastTime":0,"st":1464537600000},{"affected":1,"appUseCount":0,"count":10,"crashRate":0,"et":1464710400000,"firstTime":1464686744000,"lastTime":1464686758000,"st":1464624000000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1464796800000,"firstTime":0,"lastTime":0,"st":1464710400000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1464883200000,"firstTime":0,"lastTime":0,"st":1464796800000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1464969600000,"firstTime":0,"lastTime":0,"st":1464883200000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1465056000000,"firstTime":0,"lastTime":0,"st":1464969600000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1465142400000,"firstTime":0,"lastTime":0,"st":1465056000000},{"affected":1,"appUseCount":0,"count":3,"crashRate":0,"et":1465228800000,"firstTime":1465183517000,"lastTime":1465184881000,"st":1465142400000},{"affected":1,"appUseCount":0,"count":1,"crashRate":0,"et":1465315200000,"firstTime":1465283651000,"lastTime":1465283651000,"st":1465228800000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1465401600000,"firstTime":0,"lastTime":0,"st":1465315200000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1465488000000,"firstTime":0,"lastTime":0,"st":1465401600000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1465574400000,"firstTime":0,"lastTime":0,"st":1465488000000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1465660800000,"firstTime":0,"lastTime":0,"st":1465574400000},{"affected":0,"appUseCount":0,"count":0,"crashRate":0,"et":1465718400000,"firstTime":0,"lastTime":0,"st":1465660800000}],"key":{"appVersion":"2.0.6","appVersionId":13055,"fixed":false,"fixedTimestamp":0,"follow":false,"id":256904,"ignores":false,"name":"java.lang.IllegalArgumentException|WindowManagerGlobal.java#android.view.WindowManagerGlobal#findViewLocked#386"}}],"timeSpan":{"endTime":1465718400000,"startTime":1464418800000}}
    );
  });
  app.get('/mobile/user/:userId/app/:appId/basicinfo/interaction.json', function (req, res) {
    res.status(200).json(
      {"alias":"","result":[{"id":119085,"name":"Mobile/Activity/Name/ ForumDisplayPage#onCreate"},{"id":119073,"name":"Mobile/Activity/Name/ ForumHomePage#onCreate"},{"id":119084,"name":"Mobile/Activity/Name/ MainActivity#onCreate"},{"id":119143,"name":"Mobile/Activity/Name/ ShowThreadPage#onCreate"},{"id":119149,"name":"Mobile/Activity/Name/ SplashActivity"},{"alias":"你","id":119087,"name":"Mobile/Activity/Name/ SplashActivity#onCreate"},{"id":212940,"name":"Mobile/Activity/Name/AboutPage#onCreate"},{"id":537795,"name":"Mobile/Activity/Name/AnrActivity#onCreate"},{"id":537680,"name":"Mobile/Activity/Name/CrashDemoActivity#onCreate"},{"alias":"数据库","id":461119,"name":"Mobile/Activity/Name/DatabaseDemo#onCreate"},{"alias":"123","id":461133,"name":"Mobile/Activity/Name/ExplainActivity#onCreate"},{"id":71187,"name":"Mobile/Activity/Name/External/bbs.pediy.com"},{"id":197584,"name":"Mobile/Activity/Name/ForumDisplayPage"},{"alias":"22","id":64752,"name":"Mobile/Activity/Name/ForumDisplayPage#onCreate"},{"id":64737,"name":"Mobile/Activity/Name/ForumHomePage#onCreate"},{"id":1702136,"name":"Mobile/Activity/Name/HttpActivity#onCreate"},{"id":1702130,"name":"Mobile/Activity/Name/InitActivity#onCreate"},{"id":461131,"name":"Mobile/Activity/Name/LoadImgActivity#onCreate"},{"id":461114,"name":"Mobile/Activity/Name/LoadJsonActivity#onCreate"},{"id":262538,"name":"Mobile/Activity/Name/LoginPage"},{"alias":"Mobile/Activity/Name/SettingPage#onCreate","id":213005,"name":"Mobile/Activity/Name/LoginPage#onCreate"},{"alias":"55","id":64743,"name":"Mobile/Activity/Name/MainActivity#onCreate"},{"id":1156816,"name":"Mobile/Activity/Name/MyActivity#onCreate"},{"id":64782,"name":"Mobile/Activity/Name/SettingPage#onCreate"},{"alias":"创建","id":65914,"name":"Mobile/Activity/Name/ShowThreadPage#onCreate"},{"id":586362,"name":"Mobile/Activity/Name/SocketActivity#onCreate"},{"id":71099,"name":"Mobile/Activity/Name/SplashActivity"},{"alias":"123","id":64757,"name":"Mobile/Activity/Name/SplashActivity#onCreate"},{"id":541460,"name":"Mobile/Activity/Name/UserInformationActivity#onCreate"},{"alias":"创建应用","id":461127,"name":"Mobile/Activity/Name/ViewLoading#onCreate"},{"id":461157,"name":"Mobile/Activity/Name/WebViewDemo#onCreate"},{"id":461180,"name":"Mobile/Activity/Name/WebViewDemo2#onCreate"}]}
    );
  });
  app.get('/mobile/user/:userId/app/:appId/android_crash_detail_data.json', function (req, res) {
    res.status(200).json(
      {"activityHistory":"{\"activityHistory\":[]}","agentName":"android","agentVersion":"2.0.3","appId":800,"appName":"看雪论坛","appVersionId":13055,"appVersionName":"2.0.6","buildId":"","carriesId":0,"cause":"View=com.android.internal.policy.impl.PhoneWindow$DecorView{2cdad6c9 V.E..... R......D 0,0-296,105} not attached to window manager","cityCodeId":0,"countryCodeId":0,"crashName":"java.lang.IllegalArgumentException|WindowManagerGlobal.java#android.view.WindowManagerGlobal#findViewLocked#386","crashNameId":256904,"deviceId":0,"deviceInfo":"{\"orientation\":1,\"memoryUsage\":29,\"diskAvailable\":[808120320,469192704],\"deviceUuid\":\"e24bdc06-fb15-4a3d-bca3-944a74a6a206\",\"deviceName\":\"Meizu1\",\"networkStatus\":\"中国电信/CDMA1x\",\"runTime\":\"2.1.0\",\"architecture\":\"armv7l\",\"screenResolution\":\"normal\",\"modelNumber\":\"M046\"}","deviceTypeId":3,"deviceTypeName":"phone","extraData":{"attributes":"","ccLock":1,"datas":"{\"cpu_sys\":\"107472755\",\"location\":\"?? ???\",\"customData\":{\"??1\":\"??\",\"??ID1\":\"12@@###@\",\"????1\":\"1@@@@@#?##@?#\"},\"rooted\":\"0\",\"cpu_app\":\"378\",\"power\":\"95\",\"carrier\":\"v2_460_3_6\",\"memAvail\":\"31956992\",\"imsi\":\"460010190505098\",\"resolution\":\"800x1280\",\"ui_orientation\":\"portrait\"}","deviceId":48006436,"errId":17664036,"errType":1,"gmtCreateTime":"2016-05-31 17:25:44","gmtModifyTime":"2016-05-31 17:25:44","id":78241905,"imsi":"??","timestamp":0,"timestampCrash":0,"timestampSessionStart":0},"fixedFlag":0,"id":17664036,"manufacturerId":82682,"manufacturerName":"TEST","modelId":82683,"modelName":"H60-L31","netTypeId":0,"osId":5,"osName":"Android","osVersionId":147,"osVersionName":"5.0.1","regionCodeId":0,"runningApps":"[{\"type\":\"RUNNING_APPS\"},[]]","threads":"[{\"crashed\":true,\"priority\":5,\"stack\":[{\"className\":\"android.view.WindowManagerGlobal\",\"fileName\":\"WindowManagerGlobal.java\",\"lineNumber\":386,\"methodName\":\"findViewLocked\",\"nativeMethod\":false},{\"className\":\"android.view.WindowManagerGlobal\",\"fileName\":\"WindowManagerGlobal.java\",\"lineNumber\":312,\"methodName\":\"removeView\",\"nativeMethod\":false},{\"className\":\"android.view.WindowManagerImpl\",\"fileName\":\"WindowManagerImpl.java\",\"lineNumber\":84,\"methodName\":\"removeViewImmediate\",\"nativeMethod\":false},{\"className\":\"android.app.Dialog\",\"fileName\":\"Dialog.java\",\"lineNumber\":357,\"methodName\":\"dismissDialog\",\"nativeMethod\":false},{\"className\":\"android.app.Dialog\",\"fileName\":\"Dialog.java\",\"lineNumber\":340,\"methodName\":\"dismiss\",\"nativeMethod\":false},{\"className\":\"com.example.app.demo.DatabaseDemo$2$1\",\"fileName\":\"DatabaseDemo.java\",\"lineNumber\":41,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"android.os.Handler\",\"fileName\":\"Handler.java\",\"lineNumber\":739,\"methodName\":\"handleCallback\",\"nativeMethod\":false},{\"className\":\"android.os.Handler\",\"fileName\":\"Handler.java\",\"lineNumber\":95,\"methodName\":\"dispatchMessage\",\"nativeMethod\":false},{\"className\":\"android.os.Looper\",\"fileName\":\"Looper.java\",\"lineNumber\":135,\"methodName\":\"loop\",\"nativeMethod\":false},{\"className\":\"android.app.ActivityThread\",\"fileName\":\"ActivityThread.java\",\"lineNumber\":5275,\"methodName\":\"main\",\"nativeMethod\":false},{\"className\":\"java.lang.reflect.Method\",\"fileName\":\"Method.java\",\"lineNumber\":-2,\"methodName\":\"invoke\",\"nativeMethod\":true},{\"className\":\"java.lang.reflect.Method\",\"fileName\":\"Method.java\",\"lineNumber\":372,\"methodName\":\"invoke\",\"nativeMethod\":false},{\"className\":\"com.android.internal.os.ZygoteInit$MethodAndArgsCaller\",\"fileName\":\"ZygoteInit.java\",\"lineNumber\":911,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"com.android.internal.os.ZygoteInit\",\"fileName\":\"ZygoteInit.java\",\"lineNumber\":706,\"methodName\":\"main\",\"nativeMethod\":false}],\"state\":\"RUNNABLE\",\"threadId\":1,\"threadName\":\"main\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":-2,\"methodName\":\"sleep\",\"nativeMethod\":true},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":1031,\"methodName\":\"sleep\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":985,\"methodName\":\"sleep\",\"nativeMethod\":false},{\"className\":\"java.lang.Daemons$FinalizerWatchdogDaemon\",\"fileName\":\"Daemons.java\",\"lineNumber\":257,\"methodName\":\"sleepFor\",\"nativeMethod\":false},{\"className\":\"java.lang.Daemons$FinalizerWatchdogDaemon\",\"fileName\":\"Daemons.java\",\"lineNumber\":268,\"methodName\":\"waitForFinalization\",\"nativeMethod\":false},{\"className\":\"java.lang.Daemons$FinalizerWatchdogDaemon\",\"fileName\":\"Daemons.java\",\"lineNumber\":216,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"TIMED_WAITING\",\"threadId\":7022,\"threadName\":\"FinalizerWatchdogDaemon\"},{\"crashed\":false,\"priority\":5,\"stack\":[],\"state\":\"RUNNABLE\",\"threadId\":7043,\"threadName\":\"Binder_3\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":422,\"methodName\":\"wait\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":101,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":72,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"java.lang.Daemons$FinalizerDaemon\",\"fileName\":\"Daemons.java\",\"lineNumber\":173,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7021,\"threadName\":\"FinalizerDaemon\"},{\"crashed\":false,\"priority\":5,\"stack\":[],\"state\":\"RUNNABLE\",\"threadId\":7026,\"threadName\":\"Binder_2\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":1220,\"methodName\":\"parkFor\",\"nativeMethod\":false},{\"className\":\"sun.misc.Unsafe\",\"fileName\":\"Unsafe.java\",\"lineNumber\":299,\"methodName\":\"park\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.LockSupport\",\"fileName\":\"LockSupport.java\",\"lineNumber\":197,\"methodName\":\"parkNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject\",\"fileName\":\"AbstractQueuedSynchronizer.java\",\"lineNumber\":2055,\"methodName\":\"awaitNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":1060,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":776,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1035,\"methodName\":\"getTask\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1097,\"methodName\":\"runWorker\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor$Worker\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":587,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"TIMED_WAITING\",\"threadId\":7056,\"threadName\":\"Harvester-1\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Daemons$ReferenceQueueDaemon\",\"fileName\":\"Daemons.java\",\"lineNumber\":133,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7020,\"threadName\":\"ReferenceQueueDaemon\"},{\"crashed\":false,\"priority\":5,\"stack\":[],\"state\":\"RUNNABLE\",\"threadId\":7035,\"threadName\":\"RenderThread\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":422,\"methodName\":\"wait\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":101,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":72,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"org.apache.http.impl.conn.tsccm.RefQueueWorker\",\"fileName\":\"RefQueueWorker.java\",\"lineNumber\":102,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7057,\"threadName\":\"RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@8311685\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":1220,\"methodName\":\"parkFor\",\"nativeMethod\":false},{\"className\":\"sun.misc.Unsafe\",\"fileName\":\"Unsafe.java\",\"lineNumber\":299,\"methodName\":\"park\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.LockSupport\",\"fileName\":\"LockSupport.java\",\"lineNumber\":197,\"methodName\":\"parkNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject\",\"fileName\":\"AbstractQueuedSynchronizer.java\",\"lineNumber\":2055,\"methodName\":\"awaitNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.LinkedBlockingQueue\",\"fileName\":\"LinkedBlockingQueue.java\",\"lineNumber\":435,\"methodName\":\"poll\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1035,\"methodName\":\"getTask\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1097,\"methodName\":\"runWorker\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor$Worker\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":587,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"TIMED_WAITING\",\"threadId\":7034,\"threadName\":\"OkHttp ConnectionPool\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":422,\"methodName\":\"wait\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":101,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":72,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"org.apache.http.impl.conn.tsccm.RefQueueWorker\",\"fileName\":\"RefQueueWorker.java\",\"lineNumber\":102,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7036,\"threadName\":\"RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@11b3f53\"},{\"crashed\":false,\"priority\":5,\"stack\":[],\"state\":\"RUNNABLE\",\"threadId\":7025,\"threadName\":\"Binder_1\"},{\"crashed\":false,\"priority\":5,\"stack\":[],\"state\":\"WAITING\",\"threadId\":7018,\"threadName\":\"Signal Catcher\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.ProcessManager\",\"fileName\":\"ProcessManager.java\",\"lineNumber\":140,\"methodName\":\"waitForMoreChildren\",\"nativeMethod\":false},{\"className\":\"java.lang.ProcessManager\",\"fileName\":\"ProcessManager.java\",\"lineNumber\":105,\"methodName\":\"watchChildren\",\"nativeMethod\":false},{\"className\":\"java.lang.ProcessManager\",\"fileName\":\"ProcessManager.java\",\"lineNumber\":40,\"methodName\":\"access$000\",\"nativeMethod\":false},{\"className\":\"java.lang.ProcessManager$1\",\"fileName\":\"ProcessManager.java\",\"lineNumber\":58,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7037,\"threadName\":\"java.lang.ProcessManager\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":1220,\"methodName\":\"parkFor\",\"nativeMethod\":false},{\"className\":\"sun.misc.Unsafe\",\"fileName\":\"Unsafe.java\",\"lineNumber\":299,\"methodName\":\"park\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.LockSupport\",\"fileName\":\"LockSupport.java\",\"lineNumber\":157,\"methodName\":\"park\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject\",\"fileName\":\"AbstractQueuedSynchronizer.java\",\"lineNumber\":2016,\"methodName\":\"await\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":1048,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":776,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1035,\"methodName\":\"getTask\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1097,\"methodName\":\"runWorker\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor$Worker\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":587,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7038,\"threadName\":\"Sampler-1\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Daemons$GCDaemon\",\"fileName\":\"Daemons.java\",\"lineNumber\":341,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7024,\"threadName\":\"GCDaemon\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":422,\"methodName\":\"wait\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":101,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"java.lang.ref.ReferenceQueue\",\"fileName\":\"ReferenceQueue.java\",\"lineNumber\":72,\"methodName\":\"remove\",\"nativeMethod\":false},{\"className\":\"org.apache.http.impl.conn.tsccm.RefQueueWorker\",\"fileName\":\"RefQueueWorker.java\",\"lineNumber\":102,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"WAITING\",\"threadId\":7047,\"threadName\":\"RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@3f9a2a95\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":1220,\"methodName\":\"parkFor\",\"nativeMethod\":false},{\"className\":\"sun.misc.Unsafe\",\"fileName\":\"Unsafe.java\",\"lineNumber\":299,\"methodName\":\"park\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.LockSupport\",\"fileName\":\"LockSupport.java\",\"lineNumber\":197,\"methodName\":\"parkNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject\",\"fileName\":\"AbstractQueuedSynchronizer.java\",\"lineNumber\":2055,\"methodName\":\"awaitNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":1060,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":776,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1035,\"methodName\":\"getTask\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1097,\"methodName\":\"runWorker\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor$Worker\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":587,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"TIMED_WAITING\",\"threadId\":7029,\"threadName\":\"AppStateMon-1\"},{\"crashed\":false,\"priority\":5,\"stack\":[],\"state\":\"RUNNABLE\",\"threadId\":7058,\"threadName\":\"Binder_4\"},{\"crashed\":false,\"priority\":5,\"stack\":[],\"state\":\"WAITING\",\"threadId\":7019,\"threadName\":\"JDWP\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":1220,\"methodName\":\"parkFor\",\"nativeMethod\":false},{\"className\":\"sun.misc.Unsafe\",\"fileName\":\"Unsafe.java\",\"lineNumber\":299,\"methodName\":\"park\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.LockSupport\",\"fileName\":\"LockSupport.java\",\"lineNumber\":197,\"methodName\":\"parkNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject\",\"fileName\":\"AbstractQueuedSynchronizer.java\",\"lineNumber\":2055,\"methodName\":\"awaitNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":1060,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":776,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1035,\"methodName\":\"getTask\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1097,\"methodName\":\"runWorker\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor$Worker\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":587,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"TIMED_WAITING\",\"threadId\":7030,\"threadName\":\"TaskQueue-1\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"java.lang.Object\",\"fileName\":\"Object.java\",\"lineNumber\":-2,\"methodName\":\"wait\",\"nativeMethod\":true},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":1220,\"methodName\":\"parkFor\",\"nativeMethod\":false},{\"className\":\"sun.misc.Unsafe\",\"fileName\":\"Unsafe.java\",\"lineNumber\":299,\"methodName\":\"park\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.LockSupport\",\"fileName\":\"LockSupport.java\",\"lineNumber\":197,\"methodName\":\"parkNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject\",\"fileName\":\"AbstractQueuedSynchronizer.java\",\"lineNumber\":2055,\"methodName\":\"awaitNanos\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":1060,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue\",\"fileName\":\"ScheduledThreadPoolExecutor.java\",\"lineNumber\":776,\"methodName\":\"take\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1035,\"methodName\":\"getTask\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":1097,\"methodName\":\"runWorker\",\"nativeMethod\":false},{\"className\":\"java.util.concurrent.ThreadPoolExecutor$Worker\",\"fileName\":\"ThreadPoolExecutor.java\",\"lineNumber\":587,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"TIMED_WAITING\",\"threadId\":7032,\"threadName\":\"Harvester-1\"},{\"crashed\":false,\"priority\":5,\"stack\":[{\"className\":\"dalvik.system.VMRuntime\",\"fileName\":\"VMRuntime.java\",\"lineNumber\":-2,\"methodName\":\"trimHeap\",\"nativeMethod\":true},{\"className\":\"java.lang.Daemons$HeapTrimmerDaemon\",\"fileName\":\"Daemons.java\",\"lineNumber\":312,\"methodName\":\"run\",\"nativeMethod\":false},{\"className\":\"java.lang.Thread\",\"fileName\":\"Thread.java\",\"lineNumber\":818,\"methodName\":\"run\",\"nativeMethod\":false}],\"state\":\"TIMED_WAITING\",\"threadId\":7023,\"threadName\":\"HeapTrimmerDaemon\"}]","timestamp":1464686744000,"userinfo":"??"}
    );
  });



};
